TCP (Transmission Control Protocol,傳輸控制協議),位於傳輸層的協議,它是一種可以保證你資料安全傳輸的協議,建立安全的連線、保證資料不丟失、按照正確的順序抵達接收端,並且具有內建的錯誤偵測和修復功能。
TCP 將傳輸資料的流程分為以下三個步驟:
在第一步建立連線時,會檢查傳送端和接收端之間是否可以正常通訊,建立連線的確認過程會經過三次確認的動作,稱為三次握手(Three-Way Handshake),其步驟如下:
在資料開始傳輸前,會先在資料上附加應用程式協議表頭,形成訊息(Message),如應用程式協議為HTTP,資料上附加HTTP 表頭,形成HTTP 訊息。
當傳輸資料量過大時,TCP 協議也會將訊息分解至適當大小,分割的單位為MSS (Maximun Segment Size,最大區段大小),MSS 的標準大小為1460位元,超過這個大小的訊息就會被分割成多個以MSS 為單位的資料,稱為區段(Segment)。
透過TCP 進行傳輸的區段上會附加TCP 表頭,形成TCP 區段,其內容包含傳送端和接收端的連接埠號、資料序號、ACK 編號等。
TCP 具有內建的流量控制和雍塞控制機制,用來確保通訊的穩定性和效率。
流量控制
透過滑動窗口(Sliding Window)來實現流量控制,接收端會告訴傳送端它的緩衝區還有多少可用空間,避免過多的資料塞滿緩衝區。
雍塞控制
透過監控網路的狀態和調節資料流的速率,避免過度雍塞網路。
當資料傳輸完畢時,傳送端和接收端必須正確地切斷連線,切斷連線的過程會有四次確認的動作,稱為四次揮手(Four-Way Handshake),其步驟如下:
TCP 協議讀起來是比較簡單一些,除了【三次握手】、【四次揮手】外,還有【對資料進行切割並編號】,這些都是很好的記憶點,當然還是要強調一下,這篇只有介紹一些比較耳熟能詳的部分,細節的內容還是要去買書回來看才比較了解。
不過下一篇IP 協議的內容就多很多了,完全沒想到一個IP 位址有那麼多技術支持。